=========================================================================
ISTRUZIONI e SPECIFICHE per mandelbrot
========================================================================

La directory MANDELBROT comprende i seguenti file

$$ ls MANDELBROT/

gruppo-check.pl   README-2b
gruppo.txt        mandel.pdf
Makefile	  testmand
out1.check	  out2.check
pixel.h		  pixel.c
canvas.pl



-----------------------------------------------
Descrizione dei file contenuti nel kit
-----------------------------------------------

README-2b		: questo file


gruppo-check.pl		: uno script Perl che controlla il formato del file
			  gruppo.txt prima di effettuare la consegna
			  (NON MODIFICARE -- uguale al primo frammento)

gruppo.txt		: un file di esempio di specifica del gruppo
			  (uguale al primo frammento)
			  (solo 1 studente per gruppo)
			  (deve essere aggiornato con i dati di chi consegna,
			  secondo il formato esemplificato)

Makefile		: makefile per il test finale del frammento e la
			  consegna  
			  (NON MODIFICARE se non nelle parti richieste)


testmand 	        : script di test e output attesi su STDOUT
out1.check, out2.check	

mandel.pdf		: specifiche del visualizzatore

pixel.c, pixel.h	: funzione per il calcolo del colore di un pixel e
			  relativo include

canvas.pl		  : script Perl/TK per la visualizzazione a colori 
			    (OPZIONALE)

------------------------------------------------
Cosa deve essere realizzato per "mandelbrot"
------------------------------------------------

Questo esercizio prevede la realizzazione di visualizzatore per l'insieme di
mandelbrot secondo le specifice in mandel.pdf.

I file pixel.c e pixel.h contengono un implementazione della funzione per il
calcolo del colore di un pixel fornita nelle specifiche e possono essere
utilizzati direttamente dai thread worker.

IMPORTANTE: Tutte le scelte effettuate (implementazione strutture dati,
gestione mutua esclusione ed eventi, etc.) devono essere documentate
adeguatamente o attraverso opportuni commenti nel codice o (opzionalmente) in
un documento separato (formato .txt o .pdf da consegnare assieme ai
file di progetto).

------------------
Come procedere :
-----------------

0) leggere attentamente questo README e la specifica (mandel.pdf) 

1) analizzare accuratamente lo script ./testmand e
   l'ouput atteso su stdout (file out1.check e out2.check)

2) implementare il comando 'mandel' secondo le specifiche e testarlo
   accuratamente 

3) testare usando

       bash:~$ make test

  NOTA: (1) tutti i file sviluppati per la soluzione si devono trovare nella
  directory MANDELBROT/
  (2) E' importante che il test venga effettuato solo su
  codice ragionevolmente corretto altrimenti i risultati possono essere di
  difficile interpretazione, fuorvianti o inutili.
  
4) preparare la documentazione: ovvero commentare adeguatamente i file
   aggiungendo la dichiarazione di originalita'

   /** \file  ...
       \author Nino Bixio
     Si dichiara che il contenuto di questo file e' in ogni sua parte opera
     originale dell' autore.  */

5) aggiornare il file "gruppo.txt" con nome e dati

6) consegnare il file ESCLUSIVAMENTE eseguendo

      bash:~$ make consegna

   e seguendo le istruzioni. 
   Per la consegna e' necessaria l'utility "mpack" installata solo nelle
   macchine dei laboratori H, M ed I. Per consegne da altre macchine e'
   possibile scaricare il binario di 'mpack' dal sito del corso (attenzione:
   richiede che il mailer sia configurato correttamente.)


---------------------------------------
 NOTE IMPORTANTI: LEGGERE ATTENTAMENTE
---------------------------------------

1) gli eleborati non consegnati con "make consegna" non verranno accettati

2) tutti gli elaborati verranno confrontati fra di loro con tool automatici
   per stabilire eventali situazioni di PLAGIO. Se tali situazioni si
   verificheranno *tutti* gli elaborato coinvolti verranno annullati con
   conseguente perdita del bonus. 

3) Tutti gli studenti coinvolti in un episodio di PLAGIO comprovato dovranno
   re-implementare il frammento incriminato e saranno sottoposti ad una prova
   orale supplementare. In caso di recidive verranno esclusi dalla
   possibilita' di sostenere l'esame per TUTTO IL RESTO DELL'ANNO ACCADEMICO
   IN CORSO.

4) Chi in sede di orale risulta palesemente non essere l'autore del software
   consegnato in uno dei frammenti verra' escluso dalla possibilita' di
   sostenere l'esame per TUTTO IL RESTO DELL'ANNO ACCADEMICO IN CORSO.

5) Tutti i comportamenti scorretti ai punti 3 e 4 verranno segnalati
   ufficialmente al presidente del corso di laurea, che si riserva di
   decidere azioni disciplinari supplementari a quelle sopra descritte.

----------------------------
 VALUTAZIONE DELL'ESERCIZIO:
----------------------------

Gli studenti che consegnano una versione funzionante e ragionevolmente
corretta di entrambi gli esercizi 
entro la data di scadenza accumulano un bonus di 2
punti che verra' sommato al voto finale (vedi lucidi lezioni ed
esercitazioni).

La qualita' del codice consegnato per i due esercizi verra' valutata come
parte del progetto finale e contribuira' alla votazione assegnata al progetto.
Eventuali caratteristiche in piu' rispetto a quelle strettamente richieste
dalle specifiche date verranno valutate in questa sede.
